﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using nmConnectionDatabase;
using nmVentas;

namespace DarkPassenger{
    public partial class MenuVentas_Detalles : Form
    {
        ConexionDB Conexion;
        Ventas objVentas = new Ventas();

        public MenuVentas_Detalles(string numFactura,ConexionDB dbConexion)
        {
            InitializeComponent();
            Conexion = new ConexionDB();
            this.Conexion = dbConexion;
            objVentas.setNumFactura(numFactura);
            CargarFactura();
            CargarNombreCliente();
            CargarNombreVendedor();
        }

        public void CargarFactura()
        {
            txtNumFactura.Text = objVentas.getNumFactura();
            string consultaSQL = @"Select * FROM Ventas WHERE NumFactura = '" + objVentas.getNumFactura() + "'";
            Conexion.CargarDataSet(consultaSQL, "Ventas");
            txtDNICliente.Text = Conexion.GetDataSet().Tables[0].Rows[0].ItemArray[1].ToString();
            txtIDVendedor.Text = Conexion.GetDataSet().Tables[0].Rows[0].ItemArray[2].ToString();
            txtFecha.Text = Conexion.GetDataSet().Tables[0].Rows[0].ItemArray[3].ToString();
            txtImporte.Text = Conexion.GetDataSet().Tables[0].Rows[0].ItemArray[4].ToString();
            switch (Conexion.GetDataSet().Tables[0].Rows[0].ItemArray[5].ToString())
            {
                case "Efectivo" :
                    chkEfectivo.Checked = true;
                    break;
                case "Debito" :
                    chkDebito.Checked = true;
                    break;
                case "Credito" :
                    chkCredito.Checked = true;
                    break;
                default :
                    break;
            }
            CargarProductos();
        }

        public void CargarProductos()
        {
            int cantRows;
            string consultaSQL = @"SELECT ArticulosXVenta.TipoProducto + ArticulosXVenta.IDConsola + ArticulosXVenta.IDProducto AS [ID],
                                   Cantidad, Productos.Nombre FROM ArticulosXVenta 
                                   INNER JOIN Productos ON ArticulosXVenta.TipoProducto + ArticulosXVenta.IDProducto = 
                                   Productos.TipoProducto + Productos.IDProducto 
                                   WHERE NumFactura = '" + objVentas.getNumFactura() + "'";
            Conexion.CargarDataSet(consultaSQL, "ArticulosXVenta");
            cantRows = Conexion.GetDataSet().Tables[0].Rows.Count;
            for (int i = 0; i < cantRows; i++)
            {
                var item = new ListViewItem(new[] { Conexion.GetDataSet().Tables[0].Rows[i].ItemArray[0].ToString(), 
                    Conexion.GetDataSet().Tables[0].Rows[i].ItemArray[1].ToString(),
                    Conexion.GetDataSet().Tables[0].Rows[i].ItemArray[2].ToString() });
                lstProductos.Items.Add(item);
            }
        }


        private void CargarNombreCliente()
        {
            string consultaSQL = @"Select Nombre + ' ' + Apellido FROM Usuarios WHERE IDUsuario = '" + txtIDVendedor.Text + "'";
            Conexion.CargarDataSet(consultaSQL, "Usuarios");
            txtNombreUsuario.Text = Conexion.GetDataSet().Tables[0].Rows[0].ItemArray[0].ToString();
        }

        private void CargarNombreVendedor()
        {
            string consultaSQL = @"Select Nombre + ' ' + Apellido FROM Clientes WHERE DNI = '" + txtDNICliente.Text + "'";
            Conexion.CargarDataSet(consultaSQL, "Clientes");
            try { txtNombreCliente.Text = Conexion.GetDataSet().Tables[0].Rows[0].ItemArray[0].ToString(); }
            catch { txtNombreCliente.Text = ""; }
            if (txtNombreCliente.Text == "No Registrado No Registrado") txtNombreCliente.Text = "No Registrado";
        }

    }
}
